﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using BOL;
using WebLib;
using System.Data;
using System.Data.Linq;
using System.Data.SqlClient;
using Website.Logger;
using System.IO;
using System.Web.Script.Services;
using System.Web.Services;
using AjaxControlToolkit;
using UtilityExtensions;

namespace UILGestion.Seguridad.Empleado
{
    public partial class EmpleadoReadForm : System.Web.UI.Page
    {

        public EmpleadoReadForm()
        {
            bol = new EmpleadoBL();
            _db = new dbGestionDataContext(Parametros.strConnString);
        }
        private dbGestionDataContext _db;
        private EmpleadoBL bol;


        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!this.IsPostBack)
                {
                    internalid.Value = (string)Request.QueryString["id"];
                    menuCtrl1.loadMenuSeguridad();
                    FormatForm();
                }
            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }


        private void FormatForm()
        {

            var empleado=DbUtil.Db.Empleados.SingleOrDefault(p=>p.idInternal==internalid.Value.ToInt());

            if (empleado != null)
            {
                srtTextBox.Text = empleado.atte;
                telefonoTextBox.Text = empleado.telefono;
                descripcionTextBox.Text = empleado.descripcion;
                apePatTextBox.Text = empleado.apePaterno;
                emailTextBox.Text = empleado.email;
                nombreTextBox.Text = empleado.nombre;
                activoCheckBox.Checked = !empleado.inActivo.Value;
                ApeMatTextBox.Text = empleado.apeMaterno;
                fechacreacionLabel.Text = empleado.fechaCre != null ? empleado.fechaCre.Value.ToString() : "";
                dniTextBox.Text = empleado.dni;
                fechaModLBL.Text = empleado.fechaMod != null ? empleado.fechaMod.Value.ToString() : "";




                accesoCheckBox.Checked = empleado.tieneAcceso.Value;
                modCompraCHK.Checked = empleado.bitModuloCompra.Value;
                modVentaCHK.Checked = empleado.bitModuloVenta.Value;
                modAlmacenCHK.Checked = empleado.bitModuloAlmacen.Value;

                totalAprobadoOCTXT.Text =string.Format("{0} {1:N}",empleado.Moneda.simbol, empleado.montoAprobraOC.Value.ToString("N"));
                usuarioTextBox.Text = empleado.usuario;
                passwordTextBox.Text = string.Empty;


                EmpleadoObraEditGrid1.Load(empleado.idInternal);
                EmpleadoProyectoEditGrid1.Load(empleado.idInternal);
                EmpleadoArchivoItem1.Load(empleado.idInternal);
            }


        }

        protected void btnContinueButton_Click(object sender, EventArgs e)
        {
            try
            {
                 if ((sender as Button).ID == refreshButton.ID)
                { Response.Redirect("EmpleadoReadForm.aspx?id={0}".Fmt(internalid.Value), true);}
                 if ((sender as Button).ID == EditarButton.ID)
                      Response.Redirect("EmpleadoEditForm.aspx?type=E&id={0}".Fmt(internalid.Value), true);
                 if ((sender as Button).ID == nuevoButton.ID)
                      Response.Redirect("EmpleadoEditForm.aspx?type=A&id={0}".Fmt(internalid.Value), true);
                 if ((sender as Button).ID == EliminarButton.ID)
                         {
                             bol.delete(_db, internalid.Value.ToInt());
                         }

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }
    }
}